package com.sky.config;

import com.sky.properties.AliOssProperties;
import com.sky.utils.AliOssUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 配置类，用于创建AliOssUtil对象
 */
@Configuration
@Slf4j
public class OssConfiguration {
    /*spring的bean注解用于告诉方法，产生一个bean对象，然后这个bean对象
    交给spring管理。产生这个bean对象的方法spring只会调用一次，随后spring
    会将这个bean对象放在自己的ioc容器中*/
    @Bean
    /*保证整个ioc容器里只有一个对象，因为这种工具类对象没有必要创建多个
    * 意思是当没有这个Bean的时候再去创建
    * */
    @ConditionalOnMissingBean
    public AliOssUtil aliOssUtil(AliOssProperties aliOssProperties){
        log.info("开始创建阿里云文件上传工具类对象：{}",aliOssProperties);
        return new AliOssUtil(aliOssProperties.getEndpoint(),
                aliOssProperties.getAccessKeyId(),
                aliOssProperties.getAccessKeySecret(),
                aliOssProperties.getBucketName());

    }
}
